package cn.org.xwb.common.page.utils;

import cn.hutool.core.collection.CollUtil;

import java.util.List;

public class PageUtil {

    /**
     * 获取当前页的起始数据索引(左闭右开)
     *
     * @param current  第几页
     * @param pageSize 每页数据个数
     * @return
     */
    public static Integer getCurrentPageStartIdx(Integer current, Integer pageSize) {
        return (current - 1) * pageSize;
    }

    /**
     * 获取当前页的接收数据索引(左闭右开)
     *
     * @param current  第几页
     * @param pageSize 每页数据个数
     * @return
     */
    public static Integer getCurrentPageEndIdx(Integer current, Integer pageSize) {
        return current * pageSize;
    }

    /**
     * 获取总页数
     *
     * @param totalSize 总数据数
     * @param pageSize  每页数据个数
     * @return
     */
    public static Integer getPageCnt(Integer totalSize, Integer pageSize) {
        return (int) Math.ceil(totalSize * 1.0 / pageSize);
    }

    public static List<?> getPageData(List<?> list, Integer current, Integer pageSize) {
        return CollUtil.sub(
                list,
                getCurrentPageStartIdx(current, pageSize),
                getCurrentPageEndIdx(current, pageSize)
        );
    }

}
